package com.dawn.module.cms.controller.app.category.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "app 接口 - 类目 Response VO")
@Data
@EqualsAndHashCode()
@ToString(callSuper = true)
public class AppCategoryRespVO {


    @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27116")
    @ExcelProperty("ID")
    private Long id;

    @Schema(description = "父ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "18934")
    @ExcelProperty("父ID")
    private Long parentId;

    @Schema(description = "属性(1:顶部导航,2:底部导航,3:友情链接)", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("属性(1:顶部导航,2:底部导航,3:友情链接)")
    private String property;

    @Schema(description = "类型(1:列表,2:单页,3:链接)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("类型(1:列表,2:单页,3:链接)")
    private String type;

    @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @ExcelProperty("名称")
    private String name;

    @Schema(description = "副名称", example = "李四")
    @ExcelProperty("副名称")
    private String subName;

    @Schema(description = "栏目key", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("栏目key")
    private String categoryKey;

    @Schema(description = "模块key")
    @ExcelProperty("模块key")
    private String moduleKey;

    @Schema(description = "描述,SEO", example = "随便")
    @ExcelProperty("描述,SEO")
    private String description;

    @Schema(description = "拼音")
    @ExcelProperty("拼音")
    private String pinyin;

    @Schema(description = "banner图")
    @ExcelProperty("banner图")
    private String banner;

    @Schema(description = "图标")
    @ExcelProperty("图标")
    private String ico;

    @Schema(description = "关键字,SEO")
    @ExcelProperty("关键字,SEO")
    private String keywords;

    @Schema(description = "路径")
    @ExcelProperty("路径")
    private String path;

    @Schema(description = "链接地址", example = "https://www.ynzykj.net")
    @ExcelProperty("链接地址")
    private String linkUrl;

    @Schema(description = "栏目模板")
    @ExcelProperty("栏目模板")
    private String template;

    @Schema(description = "内容模板")
    @ExcelProperty("内容模板")
    private String contentTemplate;

    @Schema(description = "内容类型(1:图文,2:下载3:图片,4:视频)", example = "1")
    @ExcelProperty("内容类型(1:图文,2:下载3:图片,4:视频)")
    private String contentType;

    @Schema(description = "顺序", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("顺序")
    private Integer sort;

    @Schema(description = "是否显示", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("是否显示")
    private Boolean visible;

    @Schema(description = "是否搜索", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("是否搜索")
    private Boolean isSearch;

    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("状态")
    private Integer status;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "最后更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("最后更新时间")
    private LocalDateTime updateTime;

    private List<AppCategoryRespVO> children;

}
